Skip to content

Vector form support is inconsistent across dimensions in dimensions.json #58

@matt-edmondson

Description

@matt-edmondson

Summary

The strategy doc requires every dimension to declare which vector forms it supports (Vector0, Vector1, Vector2, Vector3, Vector4). Today the metadata is uneven:

  • Length declares V0, V1, V2, V3, V4.
  • ElectricCurrent declares V0, V1, V3 (no V2) — yet ElectricField2D is generated and mentioned in dot/cross product rules.
  • Most "scalar-only" dimensions (Mass, Energy, Area) only have V0, but the generator's V0 subtraction pathway assumes a V1 exists (see Resolve open design decision for Vector0 subtraction #52).

Evidence

  • Semantics.SourceGenerators/Metadata/dimensions.json — inspect the per-dimension forms arrays.
  • Generated output: Acceleration2D.g.cs, Displacement2D.g.cs, ElectricField2D.g.cs, Force2D.g.cs, Velocity2D.g.cs exist, but other 2D forms expected by the strategy table (e.g. Position2D) may not.

Suggested next step

  1. Audit dimensions.json and explicitly list intended forms per dimension.
  2. Add a generator-time validator that fails fast if a relationship references a form the dimension does not declare.
  3. Update the strategy doc with the canonical per-dimension form matrix.

Area / Severity

Metadata / SourceGenerators · incomplete

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions