feat: add RankClass and LegacyRank rank attribute value objects #202
No reviewers
Labels
No labels
area: build
area: ci
area: compare
area: data
area: engine
area: model
area: provenance
area: rite
area: validation
backport
blocked
breaking
confirmed
dependencies
duplicate
epic
github_actions
invalid
needs-info
needs-triage
php
priority: high
priority: low
priority: medium
regression
type: bug
type: chore
type: correction
type: docs
type: enhancement
type: feature
type: fix
type: perf
type: refactor
type: security
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Directorium/Core!202
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feature/10-rank-class"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #10
The first per-edition attribute value objects (Wave 1 · Epic #6). Rank is an edition attribute, never part of an observance's identity.
RankClass— the 1960 classes I–IV as a comparable value object:classI()…classIV()/fromOrdinal(),ordinal()/label(), and a total ordering (isHigherThan/isLowerThan/equals; class I is highest).LegacyRank— the native pre-1960 rank token (duplex-i-classis,semiduplex,simplex, …) retained verbatim for round-trip fidelity; the lossy-upward remap onto I–IV is a data-load concern of the edition layer (v0.3.0).Introibo\Core\Attribute\namespace (src/Attribute/) cleanly separates Layer-2 attributes from Layer-1 identity (src/Observance/).Constructed from edition attribute data, not parsed from an identifier (per the reworded #10).
Verified locally: phpcs 0 · phpstan L6
[OK]· phpunit 49 tests, 111 assertions OK.