# What's wrong with this data structure?

> Seeking feedback on a provisional data structure.

> Note: this is behind-the-scenes stuff. If you're not a data nerd, you probably won't care.

## Context

The current '[life admin](/las/)' pack is, essentially, a .zip file full of files in folders: completely static files-on-disk. It's [a real pain in the ass](https://forum.johnnydecimal.com/t/quick-start-life-admin-support-topic/1660/104) to keep updated.

[^working-title]: Working title. We have a better name up our sleeves...

The upcoming _Quick Start: 'Small business'_ pack[^working-title] will not be a static thing. It will be something that is built, from data. So when you want to create your file system _over there_, you'll tell my utility app to do that.

This way, it can look however you want without me having to manage dozens of permutations. Want Markdown files without tags in folders? Just generate that. Want an empty folder structure? Do that. Plain text files? Whatever. Push a button, it'll be generated.

## I am a liar

I previously said that [my software would be Apple-only](/22.00.0063/). Well, I'm building this in Electron. Because I don't consider this _the Johnny.Decimal software_. At this stage, it's just a utility app.

So just FYI. I am not to be trusted.

(And yeah I know Electron is a waste and JavaScript and _I know_. I need to get something up fast, and I already know JS. Don't tell me to learn Rust.)

---

# Break my data structure (please)

So I've been thinking about a JSON data structure, and I'd like your wisdom. Because I don't live in this. Some of you do. What terrible mistakes am I making? What obvious pitfalls am I overlooking?

## What does it need to do?

Ideally, I'd like to design something really future-proof. If I'm going to design a JSON/TypeScript schema, it might as well be right for the long-term.

I don't have a list of requirements, but if you know JD you can imagine. It should be able to serve as the data store for any system/JDex. Text/Markdown only; it doesn't need to store data. That's what your file system is for.

## It'll be public

This will be the officially endorsed schema so that any compatible app can communicate.

## Hmm also

I do want the 'small business' pack to come with more than just JDex entries. I have in mind that it will serve as your [ops manual](https://en.wikipedia.org/wiki/Operations_manual); so that's extra documentation linked to each ID. Think multi-page PDFs.

Perhaps that should just be a separate thing. Keep this core idea simple/pure? Probably.

## Feedback how?

I'll be ~~hacking around~~ working away on this for the next few days. Any feedback would be very welcome.

- GitHub: there's a file [here](https://github.com/johnnydecimal/index-spec/blob/main/schema.ts) and a discussion [here](https://github.com/johnnydecimal/index-spec/issues/4).

  - Preferred.

- Forum: there's a post [here](https://forum.johnnydecimal.com/t/22-00-0081-what-s-wrong-with-this-data-structure/1855).

- Discord: there's a thread [here](https://discord.com/channels/822215537589354566/1290198529989414944).

🙏 Thank you!