60 lines
3.6 KiB
Markdown
60 lines
3.6 KiB
Markdown
# R6 implementation freeze — schema/source 4
|
|
|
|
Status: active implementation in isolated D:/CodexBuilds/Capella2-data-integration.
|
|
State editing is accepted in main a8f451e; DATA includes its navigation fix and evidence.
|
|
The full first-release goal remains incomplete.
|
|
|
|
## Outcome and contract
|
|
|
|
Implement the complete data/interface contract in release-data-contract.md before
|
|
accepting schema/source4 artifacts: nature/mechanism, bounded scalar types/defaults,
|
|
field direction/storage, qualified scenario value paths, single specialization,
|
|
identified interface-item allocations/protocols and binary reference associations.
|
|
Use its exact types and validation rules. Existing PortContract and legacy
|
|
resolution/split behavior are authoritative; the old R6 InOut paragraph is superseded
|
|
by release-port-contract.md. R6 never creates a new InOut functional contract.
|
|
|
|
Retain three crates, Project and validated atomic Command/Document boundaries.
|
|
Use data.rs shared helpers for effective fields, item ancestry, inherited interface
|
|
allocations, carried field paths and value validation. Reference visitors own live
|
|
references; no second model or mutation API. Inherited rows expose original identity.
|
|
Scenario paths disambiguate reused records and stop at Reference storage.
|
|
|
|
## Sequence and ownership
|
|
|
|
1. Core owner freezes public shapes/helpers, implements typed data validation,
|
|
reference/removal/transition maintenance and focused meaningful regressions.
|
|
2. Source/migration owner preserves V1/V2/current3 inputs through an explicit4
|
|
reader; updates parser/source-project migration without flattening nesting,
|
|
includes or comments. Frozen strict DTOs only for changed old payloads plus a
|
|
closed old constructor catalog avoid cloning the whole metamodel.
|
|
3. Desktop owner integrates typed forms, path pickers, readable nested dictionary
|
|
and interface-allocation rows. Root integrates OpenAPI/spec and actual REST.
|
|
4. Full tests/strict checks, source/JSON/HTTP roundtrips, invalid/stale transactions,
|
|
Windows/Linux native authoring, compact UI and fresh independent review.
|
|
|
|
Separate files per owner; communicate model/helper signatures before dependent edits.
|
|
Use a dedicated target for this worktree. No simultaneous Cargo mutations.
|
|
Do not publish or accept intermediate4 files until both payload and dictionary
|
|
slices are complete. R3 semantic reconciliation follows this shape/reference freeze.
|
|
|
|
## Required evidence
|
|
|
|
- Physical flow and Operation parameters use bounded reusable types and defaults.
|
|
- Two parameters using one Record retain distinct value paths through calls/replies,
|
|
reidentify/delete, graphical/source edits and initial transitions.
|
|
- Two interfaces allocate one item with independent protocols/artifact links; removing
|
|
one allocation retains the item and the other allocation, and Undo restores it.
|
|
- Specialization/inherited fields and associations preserve ownership and identity;
|
|
invalid cycles/defaults/paths/ranges reject atomically, incomplete drafts warn.
|
|
- V1/V2/current3 migration preserves identities, typed ports, comments, includes and
|
|
nested ownership; deterministic allocation IDs and unresolved legacy annotations
|
|
have explicit diagnostics. GUI/source/REST save/reopen agree.
|
|
|
|
Alternatives: silent changes under schema3 rejected because existing saved3 projects
|
|
are real compatibility inputs. Whole-model frozen DTO/validator duplication rejected
|
|
in favor of strict changed-payload compatibility adapters. Generic JSON diff or
|
|
opaque body replacement is not the R3 solution. Instance literals, unit conversion,
|
|
expression execution and multiple inheritance remain explicitly outside this
|
|
bounded contract; the release requirements for categories/filters are separate.
|