sokwedb
2 weeks agoAdd LOCATIONS_MAP and LOCATIONS_GPS to events diagram
Karl O. Pinc kop@karlpinc.com [Mon, 15 Jun 2026 21:53:44 +0000 (21:53 +0000)]
Add LOCATIONS_MAP and LOCATIONS_GPS to events diagram

2 weeks agoMove tables on right of page upwards to make free space
Karl O. Pinc kop@karlpinc.com [Mon, 15 Jun 2026 17:44:26 +0000 (17:44 +0000)]
Move tables on right of page upwards to make free space

2 weeks agoNote that EVENTS.Certainty sometimes has no meaning
Karl O. Pinc kop@karlpinc.com [Mon, 15 Jun 2026 14:23:19 +0000 (14:23 +0000)]
Note that EVENTS.Certainty sometimes has no meaning

2 weeks agoNote EVENTS records feeding station arrivals and departures
Karl O. Pinc kop@karlpinc.com [Mon, 15 Jun 2026 13:39:27 +0000 (13:39 +0000)]
Note EVENTS records feeding station arrivals and departures

2 weeks agoAlphabetize
Karl O. Pinc kop@karlpinc.com [Mon, 15 Jun 2026 13:22:53 +0000 (13:22 +0000)]
Alphabetize

2 weeks agoDrop the ATTENDANCE table, use a WATCHES.Type of sdb_attendance instead
Karl O. Pinc kop@karlpinc.com [Mon, 15 Jun 2026 13:01:18 +0000 (13:01 +0000)]
Drop the ATTENDANCE table, use a WATCHES.Type of sdb_attendance instead

2 weeks agoIndex EVENTS on date+focal+type
Karl O. Pinc kop@karlpinc.com [Mon, 15 Jun 2026 03:14:07 +0000 (03:14 +0000)]
Index EVENTS on date+focal+type

Some EVENTS.Type values (ad-hoc pantgrunt observations) will not
necessarily be unique per-individual per-day.

2 weeks agoGet rid of commented out code
Karl O. Pinc kop@karlpinc.com [Mon, 15 Jun 2026 02:53:48 +0000 (02:53 +0000)]
Get rid of commented out code

2 weeks agoAdjust docs and validation for WATCHES.Type = sdb_follow
Karl O. Pinc kop@karlpinc.com [Sun, 14 Jun 2026 23:20:27 +0000 (23:20 +0000)]
Adjust docs and validation for WATCHES.Type = sdb_follow

3 weeks agoFix line length
Karl O. Pinc kop@karlpinc.com [Sun, 14 Jun 2026 23:00:12 +0000 (23:00 +0000)]
Fix line length

3 weeks agoChange from just a update trigger to insert or update
Karl O. Pinc kop@karlpinc.com [Sun, 14 Jun 2026 22:41:07 +0000 (22:41 +0000)]
Change from just a update trigger to insert or update

3 weeks agoCreate WATCHES.Type column
Karl O. Pinc kop@karlpinc.com [Fri, 12 Jun 2026 15:25:07 +0000 (15:25 +0000)]
Create WATCHES.Type column

3 weeks agoChange names: FOLLOWS -> WATCHES, FOLLOWS.FID -> WATCHES.WID
Karl O. Pinc kop@karlpinc.com [Wed, 10 Jun 2026 22:40:53 +0000 (22:40 +0000)]
Change names: FOLLOWS -> WATCHES, FOLLOWS.FID -> WATCHES.WID

3 weeks agoFix FID + Time unique index
Karl O. Pinc kop@karlpinc.com [Wed, 10 Jun 2026 22:15:11 +0000 (22:15 +0000)]
Fix FID + Time unique index

3 weeks agoFix index names
Karl O. Pinc kop@karlpinc.com [Wed, 10 Jun 2026 22:06:50 +0000 (22:06 +0000)]
Fix index names

3 weeks agoRemove commented out Seq column doc
Karl O. Pinc kop@karlpinc.com [Wed, 10 Jun 2026 21:10:54 +0000 (21:10 +0000)]
Remove commented out Seq column doc

3 weeks agoRemove spurious leftover text
Karl O. Pinc kop@karlpinc.com [Wed, 10 Jun 2026 19:15:15 +0000 (19:15 +0000)]
Remove spurious leftover text

3 weeks agoChange diagram file name: follows.svg -> watches.svg
Karl O. Pinc kop@karlpinc.com [Wed, 10 Jun 2026 19:01:38 +0000 (19:01 +0000)]
Change diagram file name: follows.svg -> watches.svg

3 weeks agoChange FOLLOWS name to WATCHES, and FOLLOWS.FID to WID in diagrams
Karl O. Pinc kop@karlpinc.com [Wed, 10 Jun 2026 19:00:06 +0000 (19:00 +0000)]
Change FOLLOWS name to WATCHES, and FOLLOWS.FID to WID in diagrams

3 weeks agofix: change comm_memb_log trigger guard from insert to update
Stevan Earl [Wed, 10 Jun 2026 23:15:17 +0000 (23:15 +0000)]
fix: change comm_memb_log trigger guard from insert to update

3 weeks agoValidate PANTGRUNS.EnteredBy against PEOPLE.Active
Karl O. Pinc kop@karlpinc.com [Tue, 9 Jun 2026 23:39:17 +0000 (23:39 +0000)]
Validate PANTGRUNS.EnteredBy against PEOPLE.Active

3 weeks agoValidate LOCATIONS_B.EnteredBy against PEOPLE.Active
Karl O. Pinc kop@karlpinc.com [Tue, 9 Jun 2026 23:37:27 +0000 (23:37 +0000)]
Validate LOCATIONS_B.EnteredBy against PEOPLE.Active

3 weeks agoValidate GROOMINGS.ExtractedBy against PEOPLE.Active
Karl O. Pinc kop@karlpinc.com [Tue, 9 Jun 2026 23:36:02 +0000 (23:36 +0000)]
Validate GROOMINGS.ExtractedBy against PEOPLE.Active

3 weeks agoValidate GROOM_SCANS_B.ExtractedBy against PEOPLE.Active
Karl O. Pinc kop@karlpinc.com [Tue, 9 Jun 2026 23:34:06 +0000 (23:34 +0000)]
Validate GROOM_SCANS_B.ExtractedBy against PEOPLE.Active

3 weeks agoValidate COMM_MEMB_LOG.MadeBy against PEOPLE.Active
Karl O. Pinc kop@karlpinc.com [Tue, 9 Jun 2026 23:33:03 +0000 (23:33 +0000)]
Validate COMM_MEMB_LOG.MadeBy against PEOPLE.Active

3 weeks agoFire comm_memb_log_trigger after INSERT as well as update
Karl O. Pinc kop@karlpinc.com [Tue, 9 Jun 2026 23:31:45 +0000 (23:31 +0000)]
Fire comm_memb_log_trigger after INSERT as well as update

3 weeks agoValidate BIOGRAPHY_LOG.MadeBy against PEOPLE.Active
Karl O. Pinc kop@karlpinc.com [Tue, 9 Jun 2026 23:30:41 +0000 (23:30 +0000)]
Validate BIOGRAPHY_LOG.MadeBy against PEOPLE.Active

3 weeks agoFire biography_log_trigger after INSERT as well as update
Karl O. Pinc kop@karlpinc.com [Tue, 9 Jun 2026 23:30:15 +0000 (23:30 +0000)]
Fire biography_log_trigger after INSERT as well as update

3 weeks agoValidate ARRIVALS_A.Recorder and Observer2 against PEOPLE.Active
Karl O. Pinc kop@karlpinc.com [Tue, 9 Jun 2026 23:28:42 +0000 (23:28 +0000)]
Validate ARRIVALS_A.Recorder and Observer2 against PEOPLE.Active

3 weeks agoValidate AGGRESSIONS.ExtractedBy against PEOPLE.Active
Karl O. Pinc kop@karlpinc.com [Tue, 9 Jun 2026 23:28:03 +0000 (23:28 +0000)]
Validate AGGRESSIONS.ExtractedBy against PEOPLE.Active

3 weeks agoRemove dead code
Karl O. Pinc kop@karlpinc.com [Tue, 9 Jun 2026 23:10:44 +0000 (23:10 +0000)]
Remove dead code

3 weeks agoARRIVALS_A has no column called DataSource
Karl O. Pinc kop@karlpinc.com [Tue, 9 Jun 2026 22:45:48 +0000 (22:45 +0000)]
ARRIVALS_A has no column called DataSource

3 weeks agoCreate, document, index, and trigger PANTGRUNTS
Karl O. Pinc kop@karlpinc.com [Tue, 9 Jun 2026 21:34:10 +0000 (21:34 +0000)]
Create, document, index, and trigger PANTGRUNTS

3 weeks agoAdd PANTGRUNTS.Source column
Karl O. Pinc kop@karlpinc.com [Tue, 9 Jun 2026 22:02:28 +0000 (22:02 +0000)]
Add PANTGRUNTS.Source column

3 weeks agoCreate PG_SOURCES code table
Karl O. Pinc kop@karlpinc.com [Tue, 9 Jun 2026 22:00:20 +0000 (22:00 +0000)]
Create PG_SOURCES code table

3 weeks agoGet rid of unneeded key columns
Karl O. Pinc kop@karlpinc.com [Tue, 9 Jun 2026 21:33:25 +0000 (21:33 +0000)]
Get rid of unneeded key columns

3 weeks agoProduce a consistent error message
Karl O. Pinc kop@karlpinc.com [Tue, 9 Jun 2026 20:53:18 +0000 (20:53 +0000)]
Produce a consistent error message

3 weeks agoFix hyperlink targets
Karl O. Pinc kop@karlpinc.com [Tue, 9 Jun 2026 20:21:58 +0000 (20:21 +0000)]
Fix hyperlink targets

3 weeks agoChange Community to CommID on PANTGRUNTS diagram
Karl O. Pinc kop@karlpinc.com [Tue, 9 Jun 2026 20:02:51 +0000 (20:02 +0000)]
Change Community to CommID on PANTGRUNTS diagram

3 weeks agoRemove PANTGRUNTS.Mutual column
Karl O. Pinc kop@karlpinc.com [Tue, 9 Jun 2026 19:58:06 +0000 (19:58 +0000)]
Remove PANTGRUNTS.Mutual column

3 weeks agoCreate, document, index, and trigger LOCATIONS_B
Karl O. Pinc kop@karlpinc.com [Tue, 9 Jun 2026 00:33:25 +0000 (00:33 +0000)]
Create, document, index, and trigger LOCATIONS_B

3 weeks agoFix so null_xor_null() macro can be used on dispariate data types
Karl O. Pinc kop@karlpinc.com [Mon, 8 Jun 2026 23:28:59 +0000 (23:28 +0000)]
Fix so null_xor_null() macro can be used on dispariate data types

3 weeks agoChange function and trigger names to reflect that they fire on insert
Karl O. Pinc kop@karlpinc.com [Mon, 8 Jun 2026 20:55:49 +0000 (20:55 +0000)]
Change function and trigger names to reflect that they fire on insert

3 weeks agoCreate LOCATION_ORIGINS support table
Karl O. Pinc kop@karlpinc.com [Mon, 8 Jun 2026 16:30:35 +0000 (16:30 +0000)]
Create LOCATION_ORIGINS support table

3 weeks agoFix section underlineing
Karl O. Pinc kop@karlpinc.com [Mon, 8 Jun 2026 16:27:24 +0000 (16:27 +0000)]
Fix section underlineing

4 weeks agoNew sdb_null_xor_null() macro, when one colum or another must be null
Karl O. Pinc kop@karlpinc.com [Sun, 7 Jun 2026 22:52:23 +0000 (22:52 +0000)]
New sdb_null_xor_null() macro, when one colum or another must be null

4 weeks agoAdjust text to read better when incorporated into a paragraph
Karl O. Pinc kop@karlpinc.com [Sun, 7 Jun 2026 22:51:31 +0000 (22:51 +0000)]
Adjust text to read better when incorporated into a paragraph

4 weeks agoFix SWELLING_STATES diagram to reflect db
Karl O. Pinc kop@karlpinc.com [Sun, 7 Jun 2026 02:05:23 +0000 (02:05 +0000)]
Fix SWELLING_STATES diagram to reflect db

4 weeks agoFix SWELLING_SOURCES diagram to reflect db
Karl O. Pinc kop@karlpinc.com [Sun, 7 Jun 2026 02:04:29 +0000 (02:04 +0000)]
Fix SWELLING_SOURCES diagram to reflect db

4 weeks agoFix REPRO_STATES diagram to reflect db
Karl O. Pinc kop@karlpinc.com [Sun, 7 Jun 2026 02:02:32 +0000 (02:02 +0000)]
Fix REPRO_STATES diagram to reflect db

4 weeks agoCreate, document, index, and trigger REPRO_STATES
Karl O. Pinc kop@karlpinc.com [Sun, 7 Jun 2026 01:45:37 +0000 (01:45 +0000)]
Create, document, index, and trigger REPRO_STATES

4 weeks agoFix animid_column() macro so column cannot be NULL
Karl O. Pinc kop@karlpinc.com [Sun, 7 Jun 2026 01:31:22 +0000 (01:31 +0000)]
Fix animid_column() macro so column cannot be NULL

4 weeks agoUse eid_primary_key() macro
Karl O. Pinc kop@karlpinc.com [Sat, 6 Jun 2026 21:41:01 +0000 (21:41 +0000)]
Use eid_primary_key() macro

4 weeks agoCorrectly invoke animid_column() macro
Karl O. Pinc kop@karlpinc.com [Sat, 6 Jun 2026 21:30:15 +0000 (21:30 +0000)]
Correctly invoke animid_column() macro

4 weeks agoInvoke animid_column() macro with parenthesis
Karl O. Pinc kop@karlpinc.com [Sat, 6 Jun 2026 21:28:58 +0000 (21:28 +0000)]
Invoke animid_column() macro with parenthesis

4 weeks agoAlphabetize by table name
Karl O. Pinc kop@karlpinc.com [Sat, 6 Jun 2026 21:17:21 +0000 (21:17 +0000)]
Alphabetize by table name

4 weeks agoCreate REPRO_STATE_CHANGE_SOURCES code table
Karl O. Pinc kop@karlpinc.com [Sat, 6 Jun 2026 21:15:25 +0000 (21:15 +0000)]
Create REPRO_STATE_CHANGE_SOURCES code table

4 weeks agoCreate PARITIES code table
Karl O. Pinc kop@karlpinc.com [Sat, 6 Jun 2026 21:13:16 +0000 (21:13 +0000)]
Create PARITIES code table

4 weeks agoCreate LE_CERTAINTIES code table
Karl O. Pinc kop@karlpinc.com [Sat, 6 Jun 2026 21:12:10 +0000 (21:12 +0000)]
Create LE_CERTAINTIES code table

4 weeks agoCreate ED_CERTAINTIES code table
Karl O. Pinc kop@karlpinc.com [Sat, 6 Jun 2026 21:11:09 +0000 (21:11 +0000)]
Create ED_CERTAINTIES code table

4 weeks agoCorrect copyright date
Karl O. Pinc kop@karlpinc.com [Sat, 6 Jun 2026 20:31:21 +0000 (20:31 +0000)]
Correct copyright date

4 weeks agoRemove the ARRIVALS_A.ArAID column and use EID as the primary key
Karl O. Pinc kop@karlpinc.com [Sat, 6 Jun 2026 00:00:32 +0000 (00:00 +0000)]
Remove the ARRIVALS_A.ArAID column and use EID as the primary key

4 weeks agoIndex and trigger SPECIES_PRESENT
Karl O. Pinc kop@karlpinc.com [Fri, 5 Jun 2026 23:38:37 +0000 (23:38 +0000)]
Index and trigger SPECIES_PRESENT

4 weeks agoFix hyperlinks
Karl O. Pinc kop@karlpinc.com [Fri, 5 Jun 2026 23:26:12 +0000 (23:26 +0000)]
Fix hyperlinks

4 weeks agoRemove the SPECIES_PRESENT.OSID column and use EID as the primary key
Karl O. Pinc kop@karlpinc.com [Fri, 5 Jun 2026 23:05:54 +0000 (23:05 +0000)]
Remove the SPECIES_PRESENT.OSID column and use EID as the primary key

4 weeks agoEVENTS with Behavior = sdb_other_species cannot be related to ROLES row
Karl O. Pinc kop@karlpinc.com [Fri, 5 Jun 2026 20:42:51 +0000 (20:42 +0000)]
EVENTS with Behavior = sdb_other_species cannot be related to ROLES row

4 weeks agosdb_other_species events must be "certain"
Karl O. Pinc kop@karlpinc.com [Fri, 5 Jun 2026 20:10:16 +0000 (20:10 +0000)]
sdb_other_species events must be "certain"

4 weeks agosdb_other_species events must have a related FOLLOWS row
Karl O. Pinc kop@karlpinc.com [Fri, 5 Jun 2026 20:09:46 +0000 (20:09 +0000)]
sdb_other_species events must have a related FOLLOWS row

4 weeks agoWrite triggers for HUMANS
Karl O. Pinc kop@karlpinc.com [Fri, 5 Jun 2026 19:50:59 +0000 (19:50 +0000)]
Write triggers for HUMANS

4 weeks agoDocument the sdb_other_species event type's validation rules
Karl O. Pinc kop@karlpinc.com [Fri, 5 Jun 2026 20:08:52 +0000 (20:08 +0000)]
Document the sdb_other_species event type's validation rules

4 weeks agoFix hyperlink
Karl O. Pinc kop@karlpinc.com [Fri, 5 Jun 2026 19:43:30 +0000 (19:43 +0000)]
Fix hyperlink

4 weeks agoRemove the HUMANS.HuID column and use EID as the primary key
Karl O. Pinc kop@karlpinc.com [Fri, 5 Jun 2026 19:41:14 +0000 (19:41 +0000)]
Remove the HUMANS.HuID column and use EID as the primary key

4 weeks agoRemove the GROOM_SCANS_B.GsID column and use EID as the primary key
Karl O. Pinc kop@karlpinc.com [Fri, 5 Jun 2026 19:33:13 +0000 (19:33 +0000)]
Remove the GROOM_SCANS_B.GsID column and use EID as the primary key

4 weeks agoRemove GROOMINGS.GrID and use EID as the primary key
Karl O. Pinc kop@karlpinc.com [Fri, 5 Jun 2026 19:25:10 +0000 (19:25 +0000)]
Remove GROOMINGS.GrID and use EID as the primary key

4 weeks agoRemove FOOD_EVENTS.FEID and use EID as the primary key
Karl O. Pinc kop@karlpinc.com [Fri, 5 Jun 2026 18:45:20 +0000 (18:45 +0000)]
Remove FOOD_EVENTS.FEID and use EID as the primary key

4 weeks agoRemove AGGRESSIONS.AgID and use EID as the primary key
Karl O. Pinc kop@karlpinc.com [Fri, 5 Jun 2026 17:55:49 +0000 (17:55 +0000)]
Remove AGGRESSIONS.AgID and use EID as the primary key

4 weeks agoAdd triggers for SWELLING_SOURCES
Karl O. Pinc kop@karlpinc.com [Fri, 5 Jun 2026 17:26:51 +0000 (17:26 +0000)]
Add triggers for SWELLING_SOURCES

4 weeks agoCorrect "ATTENDANCE after under study" error message
Karl O. Pinc kop@karlpinc.com [Fri, 5 Jun 2026 17:13:24 +0000 (17:13 +0000)]
Correct "ATTENDANCE after under study" error message

4 weeks agoFix inequality that broke ATTENDANCE under-study check
Karl O. Pinc kop@karlpinc.com [Fri, 5 Jun 2026 17:11:12 +0000 (17:11 +0000)]
Fix inequality that broke ATTENDANCE under-study check

4 weeks agoSpelling
Karl O. Pinc kop@karlpinc.com [Fri, 5 Jun 2026 17:07:52 +0000 (17:07 +0000)]
Spelling

4 weeks agoA shorter and more clear error message
Karl O. Pinc kop@karlpinc.com [Fri, 5 Jun 2026 16:56:02 +0000 (16:56 +0000)]
A shorter and more clear error message

4 weeks agoIndex the swelling sources on SWELLING_STATES
Karl O. Pinc kop@karlpinc.com [Fri, 5 Jun 2026 16:33:01 +0000 (16:33 +0000)]
Index the swelling sources on SWELLING_STATES

4 weeks agoNew build_arrivals_seq() function, in case the auto-building goes wrong
Karl O. Pinc kop@karlpinc.com [Fri, 5 Jun 2026 16:17:00 +0000 (16:17 +0000)]
New build_arrivals_seq() function, in case the auto-building goes wrong

4 weeks agoAutomatically maintain ARRIVALS.Seq
Karl O. Pinc kop@karlpinc.com [Fri, 5 Jun 2026 01:22:25 +0000 (01:22 +0000)]
Automatically maintain ARRIVALS.Seq

4 weeks agoClarify ARRIVALS.Seq ordering in the docs
Karl O. Pinc kop@karlpinc.com [Fri, 5 Jun 2026 01:14:00 +0000 (01:14 +0000)]
Clarify ARRIVALS.Seq ordering in the docs

4 weeks agoRequire an ARRIVALS row have a related ROLES row
Karl O. Pinc kop@karlpinc.com [Thu, 4 Jun 2026 19:38:15 +0000 (19:38 +0000)]
Require an ARRIVALS row have a related ROLES row

4 weeks agoRemove ARRIVALS.ArID and use EID as the primary key
Karl O. Pinc kop@karlpinc.com [Thu, 4 Jun 2026 18:21:33 +0000 (18:21 +0000)]
Remove ARRIVALS.ArID and use EID as the primary key

ArID is a confusing affection and anti-performant.

4 weeks agoNew table macro eid_primary_key()
Karl O. Pinc kop@karlpinc.com [Fri, 5 Jun 2026 19:11:12 +0000 (19:11 +0000)]
New table macro eid_primary_key()

Give the user a useful unique index name so they know what to do
when the violate the index's constraint.

4 weeks agoFix and use correct key column name
Karl O. Pinc kop@karlpinc.com [Thu, 4 Jun 2026 18:18:12 +0000 (18:18 +0000)]
Fix and use correct key column name

4 weeks agoRemove accidental leftover graphic elements
Karl O. Pinc kop@karlpinc.com [Thu, 4 Jun 2026 18:00:24 +0000 (18:00 +0000)]
Remove accidental leftover graphic elements

4 weeks agoSimplify because events only fire on update
Karl O. Pinc kop@karlpinc.com [Thu, 4 Jun 2026 18:00:01 +0000 (18:00 +0000)]
Simplify because events only fire on update

4 weeks agoSupport groom scanning at the feeding station as an EVENTS row
Karl O. Pinc kop@karlpinc.com [Mon, 1 Jun 2026 21:26:21 +0000 (21:26 +0000)]
Support groom scanning at the feeding station as an EVENTS row

Uses the sdb_groom_scan_a EVENTS.Behavior code.  Document rules
and implement.

4 weeks agoCreate, document, index, and trigger ARRIVALS_A
Karl O. Pinc kop@karlpinc.com [Mon, 1 Jun 2026 20:29:59 +0000 (20:29 +0000)]
Create, document, index, and trigger ARRIVALS_A

This is the feeding station arrival and departure "event detail"
table, that goes with the ATTENDANCE table.  The per-presence,
per-date, information has moved to this table.

4 weeks agoRemove arrival related information from ATTENDANCE
Karl O. Pinc kop@karlpinc.com [Mon, 1 Jun 2026 20:22:32 +0000 (20:22 +0000)]
Remove arrival related information from ATTENDANCE

4 weeks agoFix check for unique roles per event
Karl O. Pinc kop@karlpinc.com [Mon, 1 Jun 2026 20:14:14 +0000 (20:14 +0000)]
Fix check for unique roles per event

4 weeks agoUpdate roles docs to note that roles apply to feeding station attendance
Karl O. Pinc kop@karlpinc.com [Mon, 1 Jun 2026 19:18:25 +0000 (19:18 +0000)]
Update roles docs to note that roles apply to feeding station attendance

4 weeks agoUpdate diagrams for event based attendance design
Karl O. Pinc kop@karlpinc.com [Mon, 1 Jun 2026 19:09:57 +0000 (19:09 +0000)]
Update diagrams for event based attendance design

Split ATTENDANCE table, creating ARRIVALS_A, an attendance arrival
and departure event table.

4 weeks agoGrammer
Karl O. Pinc kop@karlpinc.com [Mon, 1 Jun 2026 19:06:15 +0000 (19:06 +0000)]
Grammer

4 weeks agoUse macro to enforce Certainty = sdb_identity_certain
Karl O. Pinc kop@karlpinc.com [Mon, 1 Jun 2026 19:04:31 +0000 (19:04 +0000)]
Use macro to enforce Certainty = sdb_identity_certain

4 weeks agoUse macro to enforce Start = Stop
Karl O. Pinc kop@karlpinc.com [Mon, 1 Jun 2026 19:01:22 +0000 (19:01 +0000)]
Use macro to enforce Start = Stop