List/dictionary of a type within a type? Or alternative?

Hi All,

I’ve been thinking about my query, and I may have a simpler one: Suppose I have:

type Person = {
    id: Principal;
    title: Text;
    name: Text;
};

public type Quest = {
    questName: Text;
    questGiver: Text;
    questReward: Text;
    questStatus: Text;
    questAcceptors: [Person];
    questComplete: Bool;
};

rather than my previous query of having entire Guilds within the questAcceptors field. Is it necessary to map a Person to a Quest in the form of a HashMap or Digraph? Also, is it better practice to map the questAcceptors field to the Person’s profile or their ID? I ask this because I want a Person to be discoverable by Quest.

Lastly, if a Quest is best to be within a list or Array of all created Quests, how can you still have the same manipulability of a Quest as you would a profile (such as in the linkedup example)? Also, what would be the best way to create a Quest as an individual, and then be able to add others to be able to edit its details. I’ve been playing around with creating them as you would profiles, but that doesn’t seem right, as ultimately, there’d need to be multiple Persons with equal admin rights to the edit the Quest.

Thank you!
Kev