Features Mapping in case.md
#1032
Draft
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Concerning #303,
To reproduce, please look at the PR code or https://github.com/Malmahrouqi3/MFC-mo2/tree/features-mapping
Demo'ed concepts @https://malmahrouqi3.github.io/documentation/md_case.html
Trade-Offs of Concepts
Matrix of Features
Raw markdown content which needlessly would occupy too much space and sorta confusing with a plenty of features (>10).
Doxygen Map

Doxygen-native feature with easy-to-implement format. Inspired by ALib docs.
Check out the PR code, but below it is demonstrated how you just define elements with their dependencies. Also, you can add url to link features with their definition @ MFC simulation namespaces
\dot digraph MFC_features { newrank=true compound=true; fontsize="10"; fontname="Open Sans"; node [shape=plaintext, fontsize="10", fontname="Open Sans"] Bootstrap [label= "Bootstrap" shape= "box" color="black" penwidth=2]; //--- dependencies base module -> base module BitBuffer -> { Monomem Containers } [ color="gray15" ]; ThreadModel -> { Boxing Containers Monomem } [ color="gray15" ]; } \enddotInteractive Map

Static HTML Script enclosed by
\htmlonly&\endhtmlonlyto be rendered as-is by Doxygen. It is simply a clustered map of features which helps out when composing a case file and could house as many features as there could be. Select one, then you can only select other compatible ones till reaching the end of the trail when finally you hit reset. You cannot select incompatible features. To utilize, just define all features and their cross-compatibility as shown below.const features = [ { id: 'A', name: 'Feature A', x: 15, y: 20 }, { id: 'B', name: 'Feature B', x: 45, y: 15 }, { id: 'C', name: 'Feature C', x: 75, y: 20 }, { id: 'D', name: 'Feature D', x: 25, y: 50 }, { id: 'E', name: 'Feature E', x: 55, y: 45 }, { id: 'F', name: 'Feature F', x: 85, y: 55 }, { id: 'G', name: 'Feature G', x: 35, y: 80 }, { id: 'H', name: 'Feature H', x: 70, y: 85 } ]; const compatibility = { 'A': ['A', 'B', 'D', 'E', 'G'], 'B': ['A', 'B', 'C', 'E', 'F', 'H'], 'C': ['B', 'C', 'F', 'H'], 'D': ['A', 'D', 'E', 'G'], 'E': ['A', 'B', 'D', 'E', 'F', 'G', 'H'], 'F': ['B', 'C', 'E', 'F', 'H'], 'G': ['A', 'D', 'E', 'G'], 'H': ['B', 'C', 'E', 'F', 'H'] };