> [!tldr] Ideating a unifying digital system design for personal use cases
A thing I designed and sort of built, but that's about as far as it went.
> [!warning]
> This system went through tons of development turbulence until it got reduced down to being so simple that's pretty much not a system at all. It started much more akin to [[Graph Data and Obsidian]].
> It was a case of this sort of thing:
> ![[Pasted image 20260721223142.png|427]]
# Premise
Everything is saved as an entity[^1]. All records have a small set of common metadata that let you do lots of neat stuff.
## Metadata
- `_id` - a [[UUID]] (or [[NanoID]] or whatever) - **required**
- `_updated` - an [[ISO 8601]] datetime
- `_created` - an [[ISO 8601]] datetime
- `_tags` - an array of strings you can key on
- `_aliases` - an array of strings you might find this entity named as
- `_source` - for provenance
- `_note` - a place for notes about the thing
### tags as classes
I have something specific in mind for "tags" - they function like documentation and semantics, like *classes*.
Tags allow function like [[Interface Object-Oriented Definition]]. They would give you hooks to key on. They can carry semantic meaning & have implications you can use to ensure data quality.
## Data
Any non-underscore-prefixed keys are data.
### Pointers
Any data field in any entity can point to any other entity or asset.
```json
{
_id: "abc123",
file: "axon://asset=myasset.jpg",
related: "axon://id=xyz789" //a link to another entity
}
```
### Derived Data
Data prefixed with a tilde denote *derived* data. The idea here is that the data can be enriched in place with new, derived fields without creating [[Single Source of Truth|source of truth]] [[Ambiguity]].
## Assets
Assets are any file, basically. Assets just need a unique name, and they all need to live in the same place.
Storing assets this way lets you have [[#Pointers]] to your files in records.
## Example
```json
{
_id: "aaa111",
_updated: "2026-07-20T18:32:20",
_classes: ["DJ", "Workout"],
_source: "Workout automation",
timestamp: "2026-07-20T18:32:20",
length: 45,
type: "strength",
name: "Leg day",
"~year": 2026, //added by code, for example
}
```
# Graph Data vs Object Data
This deserves its own note. [[Graph Data and Obsidian]]
****
# More
## Source
- self - in conversation with Claude
[^1]: or record, object, whatever