Please write fixed price you'd like to get for implementation.
Recommend solution and implement a demo for viewing and editing DSL code.
Format of DSL is relatively simple - it's plain text. Tabs give additional meaning to the code - they define "level" - number of tabs = level. Level determines relationships between the 2 rows, e.g., child / parent, sibling relationship, ... .
There is a small number of keywords: ak:, k:, ->
Example of DSL code:
k:Also called -> P1
k:Tags -> Status Beta, Proof
k:Description -> Some longer text ...
1) Collapsible regions like in C# in Visual Studio (#rtegion ... #endregion)
1.1) Ability to collapse current paragraph and all its child paragraphs. E.g., collapsing k:Types hides also ak:PT Product2 and ak:PR Product2
1.2) Ability to collapse only value after first last -> in given paragraph
1.3) When something is collapsed, ideally it should take no space. E.g., in Visual Studio collapsed region still occupies 1 row. It'd be great if indication that something is collapsed could be in the "border", e.g., like in Visual Studio is indicated break point - red circle
1.4) A way for a user to write some code to collapse, e.g., all paragraphs that have k:Types in whole document
1.5) Like 1.4 but using Tags - collapse all paragraphs that have child paragraph Tag of specific value. E.g., collapse all paragraphs that have tag Proof. It'll colapse ak:Product1 and its children
2) "Syntax highlighting"
Keywords in gray. Keyword is ak:, k:, etc.
Text after keyword until end of line or until -> is formatted depending on keyword type. E.g., for ak: it'd be bold, so Product1 is bold
-> is of some style too
Values in k:Tags (e.gf., Status Beta, Proof) have a custom style
All styles should be editable so user can change it according to their taste. Users are able to write code so it doesn't need UI ... but it shouldn't be awfully complicated
3) Text wraps but is indented the same way as level + 1 would be. E.g., if k:Description text would be on 2 lines, its second line should start as if there were 2 tabs. (k:Description is levekl 1 so it has 1 tab.)
4) Ideally, ability to move caret to next sibling (keyword on same level before/after current position). E.g., ak:Product2 - if moving before then caret goes to ak:Product1
Ideally this is done as an extension, e.g., to Visual Studio Code, Atom, Visual Studio. Also other editors can be considered if they're free.
How you'd do it ? It can be as simple as saying in editor named X using, e.g., its extensibility features. Feel free to recommend multiple options. Cost wins. I have a preference for extension to some editor but a custom solution will be considered too.