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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions