My proposal doesn’t seem to me to compromise human readability and editability (and certainly doesn’t compromise version control) so just to make sure we mean the same thing, an example:
space update mydeck.spc
where mydeck.spc = ”
The [quick] brown fox jumped over the [lazy] dog.
;UID=SDFGHJKERTYUICVBN;
Three commonly-used nonsense variable names:
1. foo
2. bar
3. baz
;;
OCaml :: A fast, functional, strongly-typed programming language.
;;"
would find in the deck the first note using the NID, and then add the second and third (having no NIDs, they cannot be found), generate new NIDs, and update mydeck.spc to something like = ”
The [quick] brown fox jumped over the [lazy] dog.
;UID=SDFGHJKERTYUICVBN;
Three commonly-used nonsense variable names:
1. foo
2. bar
3. baz
;UID=LUKAGSDSDFGHJKEE;
OCaml :: A fast, functional, strongly-typed programming language.
;UID=HJKERTYUIVHBFJVBN;"
which you can then checkin. The only edit we would expect users to perform on an NID is to delete it when copy pasting to assign a new NID to the edited version, and that is certainly feasible. Do you still find this objectionable?
The more nebulous, the fewer contributors. I certainly would prefer to contribute to properly licensed projects; I’ve had the fun of putting work into a project that for silly license reasons couldn’t get into Debian/GSOC/… I’m willing to forgo it in the future.
I haven’t done any deck making, so give this low weight, but I imagine a truly collaborative and creative joint project where making up, say, fallacious arguments → fallacy name notes that are actually challenging is half the fun, and the benefit of copy-pasta is small anyway.