A&A is not only an editor, it is an interactive map runtime. That is the same substrate behind consumer transit apps where the map IS the interface - tap a station, get departures. STRATEGY.md section 12 argues a template app is a real option and that the codebase is closer to it than it looks.
What is already decoupled, verified against the repo:
hit testing is free functions taking explicit parameters, not methods bound to editor state (interaction/hit_test.dart)
rendering already runs headless, proven three times over by the PNG, SVG and PDF exporters driving CanvasPainter through DrawTarget
arc resolution lives in the model layer (resolveArcGeometry in snap_engine_v2.dart), imported by hit testing rather than reached through the editor
What blocks it is the same thing that blocks the shared/live views rendering real geometry: CanvasPainter's cornerRadii input is computed by MapCanvas's stateful interaction machinery rather than by a pure function. So this issue and the live/shared rendering issue want the same extraction, and doing that one first is most of this one.
Deliberately gated. STRATEGY.md says not before a paid pilot - it carries a perpetual maintenance obligation and rests on an unproven commercial step. Filed so it is visible and sequenced, not so it gets started.
Also note accessibility is a hard legal bar here specifically: the Public Sector Bodies Accessibility Regulations cover mobile apps, so a branded passenger app built on this engine could not ship until that is addressed.
Opened during the roadmap audit on 2026-09-05.
A&A is not only an editor, it is an interactive map runtime. That is the same substrate behind consumer transit apps where the map IS the interface - tap a station, get departures. STRATEGY.md section 12 argues a template app is a real option and that the codebase is closer to it than it looks.
What is already decoupled, verified against the repo:
- hit testing is free functions taking explicit parameters, not methods bound to editor state (`interaction/hit_test.dart`)
- rendering already runs headless, proven three times over by the PNG, SVG and PDF exporters driving `CanvasPainter` through `DrawTarget`
- arc resolution lives in the model layer (`resolveArcGeometry` in `snap_engine_v2.dart`), imported by hit testing rather than reached through the editor
What blocks it is the same thing that blocks the shared/live views rendering real geometry: `CanvasPainter`'s `cornerRadii` input is computed by MapCanvas's stateful interaction machinery rather than by a pure function. So this issue and the live/shared rendering issue want the same extraction, and doing that one first is most of this one.
Deliberately gated. STRATEGY.md says not before a paid pilot - it carries a perpetual maintenance obligation and rests on an unproven commercial step. Filed so it is visible and sequenced, not so it gets started.
Also note accessibility is a hard legal bar here specifically: the Public Sector Bodies Accessibility Regulations cover mobile apps, so a branded passenger app built on this engine could not ship until that is addressed.
Opened during the roadmap audit on 2026-09-05.
ImBenji
added this to the Arcs & Angles project 2026-09-05 15:12:59 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
A&A is not only an editor, it is an interactive map runtime. That is the same substrate behind consumer transit apps where the map IS the interface - tap a station, get departures. STRATEGY.md section 12 argues a template app is a real option and that the codebase is closer to it than it looks.
What is already decoupled, verified against the repo:
interaction/hit_test.dart)CanvasPainterthroughDrawTargetresolveArcGeometryinsnap_engine_v2.dart), imported by hit testing rather than reached through the editorWhat blocks it is the same thing that blocks the shared/live views rendering real geometry:
CanvasPainter'scornerRadiiinput is computed by MapCanvas's stateful interaction machinery rather than by a pure function. So this issue and the live/shared rendering issue want the same extraction, and doing that one first is most of this one.Deliberately gated. STRATEGY.md says not before a paid pilot - it carries a perpetual maintenance obligation and rests on an unproven commercial step. Filed so it is visible and sequenced, not so it gets started.
Also note accessibility is a hard legal bar here specifically: the Public Sector Bodies Accessibility Regulations cover mobile apps, so a branded passenger app built on this engine could not ship until that is addressed.
Opened during the roadmap audit on 2026-09-05.