// 2025-2026 Богданович Давид Когут Прихожденко (кдб.дійсність.укр)

взяти означення мавка/машина;

простір мавка {
  дія створити_складений_предмет(
    М: адреса<Машина>,
    значення_структури: адреса<ПредметСтруктури>
  ) -> адреса<СкладенийПредмет> {
    змінна предмет = виділити_предмет<СкладенийПредмет>(М, значення_структури);

    предмет.властивості = Призначення { 0, пусто, 0 };

    вернути предмет;
  }

  дія складений_предмет_отримати_властивість(
    М: адреса<Машина>,
    складений_предмет: адреса<СкладенийПредмет>,
    назва: адреса<ПредметТексту>,
    місцезнаходження: Місцезнаходження
  ) -> ЗначенняАбоСтанПадіння {
    змінна результат = НЕДІЙСНЕ;

    якщо знайти_призначене(
      М,
      складений_предмет.властивості,
      назва,
      результат::адреса
    ) {
      вернути результат;
    }

    змінна предмет_методу = знайти_метод_в_структурі(
      М,
      складений_предмет.тип,
      назва
    );

    якщо предмет_методу == пусто {
      вернути НЕДІЙСНЕ;
    }

    вернути МАШИННИЙ_ПРЕДМЕТ(предмет_методу);
  }

  дія складений_предмет_змінити_властивість(
    М: адреса<Машина>,
    складений_предмет: адреса<СкладенийПредмет>,
    назва: адреса<ПредметТексту>,
    значення: Значення,
    місцезнаходження: Місцезнаходження
  ) {
    призначити(
      М,
      складений_предмет.властивості::адреса,
      назва,
      значення
    );
  }
}